package com.platform.framework.gateway.wxpay.inf;


import com.platform.framework.entity.wxpay.WxpayReturnInfo;
import com.platform.framework.vo.pub.ResponseVo;
import com.platform.framework.vo.transfer.TransportLayer;


/**
 * 微信SDK接口
 * @author ly-liuxianliang
 *
 */
public interface WxpayGateway {
	
	/**
	 * 微信H5支付
	 * @param transportLayer
	 * @return
	 * @throws Exception
	 */
	public String wxpayJsApi(TransportLayer transportLayer)throws Exception;
	
	/**
	 * 微信扫码支付
	 * @param transportLayer
	 * @return
	 * @throws Exception
	 */
	public String wxpayQRCode(TransportLayer transportLayer)throws Exception;
	
	/**
	 * 微信刷卡支付
	 * @param transportLayer
	 * @return
	 * @throws Exception
	 */
	public WxpayReturnInfo wxpayBarCode(TransportLayer transportLayer)throws Exception;
	
	/**
	 * 微信订单查询
	 * @param transportLayer
	 * @return
	 * @throws Exception
	 */
	public WxpayReturnInfo tradeQuery(TransportLayer transportLayer)throws Exception;
	

	/**
	 * 订单查询服务，没有调起微信API查询微信后台，直接返回本支付平台的支付流水
	 * @param transportLayer
	 * @return
	 * @throws Exception
	 */
	public ResponseVo tradeQueryNoWxService(TransportLayer transportLayer)throws Exception;
	
	/**
	 * 微信退款接口
	 * @param transportLayer
	 * @return
	 * @throws Exception
	 */
	public String doRefund(TransportLayer transportLayer)throws Exception;
	
	/**
	 * 微信撤销订单
	 * @param transportLayer
	 * @return
	 * @throws Exception
	 */
	public String wxReverse(TransportLayer transportLayer)throws Exception;
	
	/**
	 * 统一下单API
	 * @param request
	 */
	public TransportLayer unifiedOrder (TransportLayer transportLayer)throws Exception ;
}
